package it.azienda.stampe.view;

import it.azienda.framework.utilita.Utilita;
import it.azienda.framework.view.Dettaglio;
import it.azienda.managerworkstandard.modello.BeanFornitore;
import it.azienda.stampe.parametri.BeanStampaScadenzeFattureFornitori;
import java.util.HashMap;
import javax.faces.component.html.HtmlForm;
import javax.faces.context.FacesContext;

public class DettaglioStampaScadenzeFattureFornitori extends Dettaglio {
    private HtmlForm form = new HtmlForm();
    private BeanStampaScadenzeFattureFornitori beanStampaScadenzeFattureFornitori;
    
    public void setBeanStampaScadenzeFattureFornitori(BeanStampaScadenzeFattureFornitori beanStampaScadenzeFattureFornitori) {
        setObj(beanStampaScadenzeFattureFornitori);
        this.beanStampaScadenzeFattureFornitori = beanStampaScadenzeFattureFornitori;
    }
    
    public BeanStampaScadenzeFattureFornitori getBeanStampaScadenzeFattureFornitori(){
        return (BeanStampaScadenzeFattureFornitori)getObj();
    }
    
    public HtmlForm getForm() {
        form = (HtmlForm) Utilita.getSession().getAttribute("form");
        if (form == null) {
            form = new HtmlForm();
        }
        FacesContext ctx = FacesContext.getCurrentInstance();
        beanStampaScadenzeFattureFornitori =(BeanStampaScadenzeFattureFornitori) ctx.getExternalContext().getRequestMap().get("beanStampaScadenzeFattureFornitori");
        controlloDopoSalvataggio(beanStampaScadenzeFattureFornitori);
        Utilita.getSession().removeAttribute("form");
        return form;
    }
    
    public void setForm(HtmlForm form) {
        setFormObject(form);
        this.form = form;
        Utilita.getSession().setAttribute("form",form);
    }
    
    public void controlloDopoSalvataggio(Object obj) {
        BeanStampaScadenzeFattureFornitori StampaScadenzeFattureFornitori=(BeanStampaScadenzeFattureFornitori)obj;
        if(StampaScadenzeFattureFornitori.getBeanFornitore()==null){
            StampaScadenzeFattureFornitori.setBeanFornitore(new BeanFornitore());
        }
    }
    
    public void stampaJasper() {
        FacesContext ctx = FacesContext.getCurrentInstance();
        BeanStampaScadenzeFattureFornitori beanStampa = (BeanStampaScadenzeFattureFornitori) ctx.getApplication().getVariableResolver().resolveVariable(ctx,"beanStampaScadenzeFattureFornitori");
        try{
            boolean verifica=false;
            /*
            String queryNuova = "select * from fattureAcquisto,fattureAcquistodett,fornitori" +
                    " where fattureAcquisto.id = fattureAcquistodett.fatturaAcquisto_id" +
                    " and fattureAcquisto.fornitore_id = fornitori.id";
             */
            
            String queryNuova = "select * from fattureAcquisto,fornitori" +
                    " where  fattureAcquisto.fornitore_id = fornitori.id";
            
            HashMap parametri = new HashMap();
            
            
            if(beanStampa.getIdFornitore() != null){
                queryNuova+=" and fornitori.id = $P{fornitoreId}";
                parametri.put("fornitoreId",beanStampa.getIdFornitore());
                verifica = true;
            }
            
            if(beanStampa.getDataDa() != null && beanStampa.getDataA() != null){
                queryNuova+=" and fattureAcquisto.data between $P{dataDa} and $P{dataA}";
                parametri.put("dataDa",beanStampa.getDataDa());
                parametri.put("dataA",beanStampa.getDataA());
                verifica = true;
            }
            /*
            if(beanStampa.getTipoRicerca().intValue()==1){
                //    queryNuova+=" and fattureAcquistoDett.pagato = $P{pagatoSN}";
                parametri.put("pagatoS","S");
                parametri.put("pagatoN","S");
                verifica = true;
            }else if(beanStampa.getTipoRicerca().intValue()==2){
                //  queryNuova+=" and fattureAcquistoDett.pagato = $P{pagatoSN}";
                parametri.put("pagatoS","N");
                parametri.put("pagatoN","N");
                verifica = true;
            }else if(beanStampa.getTipoRicerca().intValue()==0){
                parametri.put("pagatoS","S");
                parametri.put("pagatoN","N");
                verifica = true;
            }
             */
            parametri.put("pagatoS","S");
            parametri.put("pagatoN","N");
            verifica = true;
            queryNuova+=" order by fornitori.ragioneSociale";
            
            if(verifica){
                beanStampa.setParametriStampa(parametri);
                beanStampa.setQueryNuova(queryNuova);
            }
            
            super.setBeanStampa(beanStampa);
            super.stampaJasper();
        }catch(Exception ex){
        }finally {
            Utilita.getRequest().setAttribute("beanStampaScadenzeFattureFornitori",beanStampa);
        }
    }
    
}